#pragma once

#include "StockNamespace.h"
#include "StockTypes.h"

#include "StrategyNode.h"

#include <vector>


STOCK_NS_BEGIN

class StrategyNode;
class DealState;

class StrategyTree
{
public:
	StrategyTree();
	~StrategyTree();

	void Build(std::vector<StockPrice> prices);

	StrategyNode * GetMaxProfitNode();
	std::vector<StrategyNode *> GetNodePath(StrategyNode * node);

private:
	StrategyNode  _root;
};

STOCK_NS_END
